/* typehints:start */
import { GameRoot } from "../root";
import { Npc } from "../npcs/npc";
/* typehints:end */

import { createLogger } from "../../core/utils/logging";
import { taskDefine } from "../defines/task_define";

const logger = createLogger('game/task');

export class Task{
  constructor(root){
    /** @type {GameRoot} */
    this.root = root;
  }

  // getId(){
  //   abstract;
  // }

  getTitle(){
    abstract;
  }

  getDesc(){
    abstract;
  }

  getTip(){
    abstract;
  }

  getIsComplete(){
    abstract;
  }

  getTaskType(){
    return taskDefine.primary;
  }

  getCompleteMessage(){
    return '完成任务';
  }

  /**
   * 完成任务后的回调
   * @param {Npc} npc 
   */
  completedCb(npc){

  }
}